1
Ngữ pháp Tự nhiên: Triết lý về Ghi đè Toán tử
AI037Lesson 17
00:00

Triết lý về Ngữ pháp Tự nhiên cho rằng các kiểu do người dùng định nghĩa nên hành xử như công dân hạng nhất. Bằng cách triển khai ghi đè toán tử, chúng ta cho phép các lớp sử dụng ký hiệu chuẩn (như + hoặc ==), điều này làm giảm tải nhận thức và đáp ứng được nguyên tắc ít gây ngạc nhiên nhất.

1. Cấu trúc & Phân phát

Một toán tử là một hàm với tên đặc biệt: từ khóa operator theo sau bởi một ký hiệu. Một toán tử đơn có một tham số, trong khi một toán tử nhị phân có hai tham số. Khi được định nghĩa như một hàm thành viên, tham số bên trái sẽ liên kết với con trỏ this ngầm định (a.operator+(b)). Như một không phải thành viên, cả hai đều rõ ràng (operator+(a, b)).

Có thể ghi đè+ - * / % ^& | ~ ! = < >+= -= *= /= << >>== != <= >= && ||++ -- , ->* -> () []Không thể ghi đè:: (Phạm vi).* (Truy cập thành viên). (Điểm)?: (Điều kiện)Bảng 14.1. Quyền hạn Toán tử (Tham khảo trang 684)

2. Giới hạn & Đạo đức

C++ ngăn chặn "sự tàn phá ngôn ngữ": bạn không thể tạo ra các ký hiệu mới (ví dụ, **) hoặc ghi đè các thao tác cho các kiểu tích hợp sẵn (ví dụ, int + int). Thứ tự ưu tiên và tính liên kết là vĩnh viễn. Nguyên tắc kiến trúc: Các lớp xác định == tích hợp liền mạch với các thuật toán thư viện như std::find.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>